package factorymethod.factory;

import factorymethod.prodcut.Transport;

/**
 * 抽象工厂：定义创建 Transport 对象的工厂方法
 * @author Liu Yicong
 * @date 2025/9/20
 */
public interface TransportFactory {
	// 抽象工厂方法
	Transport createTransport();

	// 可以在抽象工厂中定义一些通用的业务逻辑
	default void planDelivery(String destination) {
		Transport transport = createTransport(); // 调用工厂方法创建产品
		System.out.println("--- 开始规划投递 ---");
		transport.deliver(destination);
		System.out.println("--- 投递规划完毕 ---");
	}
}
